package com.atguigu.tingshu.account.receiver;

import com.atguigu.tingshu.account.service.UserAccountService;
import com.atguigu.tingshu.common.constant.KafkaConstant;
import lombok.extern.slf4j.Slf4j;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.annotation.KafkaListener;
import com.alibaba.nacos.common.utils.StringUtils;
import org.springframework.stereotype.Component;

@Component
@Slf4j
public class AccountReceiver {

    @Autowired
    private UserAccountService userAccountService;

    /**
     * 这是一个Spring Kafka的注解，用于监听Kafka消息队列中指定主题的消息。在这个例子中，
     * 它监听的主题是KafkaConstant.QUEUE_USER_PAY_RECORD。
     * 当有新的消息发布到这个主题时，带有此注解的方法会被自动调用以处理这些消息。
     * @param record
     */

    @KafkaListener(topics = KafkaConstant.QUEUE_USER_PAY_RECORD)
    public void userRegister(ConsumerRecord<String,String> record){
        //消息值
        String value = record.value();
        if (StringUtils.isNotEmpty(value)){
            Long userId = Long.valueOf(value);
            //添加账户
            userAccountService.saveUserAccount(userId);
            log.info("[账户服务]监听用户注册成功消息：{}", value);
        }
    }
}
